// 创建路由器 ,创建路由的方法, 浏览器历史记录
import { createRouter, createWebHistory, createWebHashHistory } from 'vue-router';
//  vue 是一个单文件组件,模拟出 类似浏览器跳转页面的效果
// 并没有跳转页面,只是改变了页面的显示内容
// import routes from './routes'; 
import IndexView from '../views/IndexView.vue';
import NotFound from '../views/NotFound.vue';
import LoginView from '../views/LoginView.vue';
import BookView from '../views/BookView.vue';
import HotView from '../views/book/HotView.vue';
import FollowingView from '../views/book/FollowingView.vue';

let routes = [
  // 路由的名字不可以重复
  { path: "/", component: IndexView },
  {
    // 可以给路线起名字,一般是子路由
    path: "/index", component: IndexView,
    name: 'index',
    // 希望将任意信息附加到路由上 使用meta 属性
    meta: { requite: false }
  },
  {
    // 可以给路线起名字,一般是子路由
    path: "/login/:username", component: LoginView,
    name: 'login'
  },
  {
    path: "/book", component: BookView,
    // 路由的嵌套  /book/hot/view  /book/following
    children: [
      { path: "hot", component: HotView, name: 'hot' },
      { path: "following", component: FollowingView }
    ]
  },
]

// export 导出路由器,交给vue 使用
const router = new createRouter({
  // 如何在浏览器里边显示
  history: createWebHistory(),
  // 所有的路线
  routes
})

// 路由守卫,对访问路径,进行限制
// beforeEnter 线路跳转到view 之前做某事
//to 去哪个路径  路径对象
// from 从哪个路径来
router.beforeEach((to, from, next) => {
  console.log("to-->",to);
  console.log("from-->",from);

  if (to.meta.requite) {
    // 可以指定 跳转的页面
    next({ path:'/login/张三' })
  }else{
    // 可以显示 view 页面
    next()
  }
})
export { router }